package SquarePackage;

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

public class TeleportableSquareTest {
	private TeleportableSquare square5;
	private TeleportableSquare square4;
	private TeleportableSquare square3;
	private TeleportableSquare square2;
	private TeleportableSquare square1;
	@Before
	public void setUp() throws Exception {
		
		square5 = new NormalSquare();
		square4 = new NormalSquare();
		square1 = new NormalSquare();
		square2 = new NormalSquare();
		square3 = new TransparentSquare();
	}

	@Test
	public void testAddDestination() {
		square5.addDestination(square1);
		square5.addDestination(square2);
		square5.addDestination(square3);
		square5.addDestination(square4);
		square2.addDestination(square1);
		square2.addDestination(square3);
		square2.addDestination(square4);
		square2.addDestination(square5);
		square3.addDestination(square2);
		square4.addDestination(square3);
		square3.addDestination(square4);
		square3.addDestination(square5);
		square3.addDestination(square1);
		square4.addDestination(square2);
		square4.addDestination(square1);
		square1.addDestination(square4);
		square4.addDestination(square5);
		square1.addDestination(square2);
		square1.addDestination(square3);
		square1.addDestination(square4);
		square1.addDestination(square5);
	}
	@Test	(expected = AssertionError.class)
	public void testAddDestinationIllgalCase() {
		square1.addDestination(square1);
	}

	@Test
	public void testSetDestinations() {
		fail("Not yet implemented");
	}

	@Test
	public void testCanTeleportTo() {
		fail("Not yet implemented");
	}

	@Test
	public void testTeleport() {
		fail("Not yet implemented");
	}

	@Test
	public void testHasTeleportationEnabled() {
		fail("Not yet implemented");
	}

}
